149c2dcf2d386c55f7023bf832b50e1386cf13ad,storio-content-resolver/src/test/java/com/pushtorefresh/storio/contentresolver/impl/RxChangesObserverTest.java,RxChangesObserverTest,shouldRegisterContentObserverAfterSubscribingToObservable,#,72

Before Change



        // Should register Content Observer after subscribing to Observable
        verify(contentResolver)
                .registerContentObserver(any(Uri.class), anyBoolean(), any(ContentObserver.class));

        subscription.unsubscribe();
    }

After Change



    @Test
    public void shouldRegisterOnlyOneContentObserverAfterSubscribingToObservableOnSdkVersionGreaterThan15() {
        for (int sdkVersion = 16; sdkVersion < MAX_SDK_VERSION; sdkVersion++) {
            ContentResolver contentResolver = mock(ContentResolver.class);

            final AtomicReference<ContentObserver> contentObserver = new AtomicReference<ContentObserver>();

            doAnswer(new Answer() {
                @Override
                public Object answer(InvocationOnMock invocation) throws Throwable {
                    // Save reference to ContentObserver only once to assert that it was created once
                    if (contentObserver.get() == null) {
                        contentObserver.set((ContentObserver) invocation.getArguments()[2]);
                    } else if (contentObserver.get() != invocation.getArguments()[2]) {
                        throw new AssertionError("More than one ContentObserver was created");
                    }
                    return null;
                }
            }).when(contentResolver).registerContentObserver(any(Uri.class), eq(true), any(ContentObserver.class));

            Set<Uri> uris = new HashSet<Uri>(3);
            uris.add(mock(Uri.class));